package cn.xxxy.fourm.dao;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

import cn.xxxy.fourm.entity.Board;
import cn.xxxy.fourm.entity.Post;
import cn.xxxy.fourm.entity.ReplyPost;

public interface PostDao extends JpaRepository<Post, Integer>{
	/**
	 * 根据关键字对查询帖子标题和内容进行模糊查询
	 * @return
	 */
	@Query(value="select * from t_post p where p.ptitle like '%?1%' or p.pcontent like '%?1%' ",nativeQuery=true)
	List<Post> listPostBykeyWord(String keyword);
	/**
	 * 查询置顶的帖子
	 * @return
	 */
	@Query(value="select * from t_post p where p.top ='是'",nativeQuery=true)
	List<Post> findByTop();
	/**
	 * 查询已完结的帖子
	 * @return
	 */
	@Query(value="select * from t_post p where p.complete = '已结' ",nativeQuery=true)
	List<Post> findByComplete();
	/**
	 * 查询未完结的帖子
	 * @return
	 */
	@Query(value="select * from t_post p where p.complete = '未结' ",nativeQuery=true)
	List<Post> findByUnComplete();
	/**
	 * 查询精品帖子
	 * @return
	 */
	@Query(value="select * from t_post p where p.quality ='是'",nativeQuery=true)
	List<Post> findByQuality();
	/**
	 * 查询最新一个月的帖子
	 * @return
	 */
	@Query(value="select * from t_post p where p.posttime between current_date()-30 and current_date()",nativeQuery=true)
	List<Post> findByNew();
	/**
	 * 查询热度在100以上的帖子
	 * @return
	 */
	@Query(value="select * from t_post p where p.hot>=100 ",nativeQuery=true)
	List<Post> findByHot();
	/**
	 * 查询我的帖子
	 * @return
	 */
	@Query(value="select * from t_post p where p.uid=?1 ",nativeQuery=true)
	List<Post> listMyPostsByUid(Integer uid);
	
	/**
	 * 查询我回复的帖子
	 * @return
	 */
	@Query(value="select * from t_reply_post p where p.uid=?1 ",nativeQuery=true)
	List<ReplyPost> listMyRePostsByUid(Integer uid);
	/**
	 * 
	 */
	@Query(value="select * from t_post  where p.ptitle like '%?1%' or p.pcontent",nativeQuery=true)
	List<Post> listkeySearchPost(String key);
}
